home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / vbdatabs / ccindex.h < prev    next >
C/C++ Source or Header  |  1999-03-17  |  7KB  |  164 lines

  1. // ------------------------------- //
  2. // -------- Start of File -------- //
  3. // ------------------------------- //
  4. // ----------------------------------------------------------- //
  5. // C++ Header File Name: ccindex.h 
  6. // Compiler Used: MSVC40, DJGPP 2.7.2.1, GCC 2.7.2.1, HP CPP 10.24
  7. // Produced By: Doug Gaer   
  8. // File Creation Date: 09/17/1997  
  9. // Date Last Modified: 03/17/1999
  10. // Copyright (c) 1997 Douglas M. Gaer
  11. // ----------------------------------------------------------- // 
  12. // ---------- Include File Description and Details  ---------- // 
  13. // ----------------------------------------------------------- // 
  14. /*
  15. The VBD C++ classes are copyright (c) 1997, by Douglas M. Gaer.
  16. All those who put this code or its derivatives in a commercial
  17. product MUST mention this copyright in their documentation for
  18. users of the products in which this code or its derivative
  19. classes are used. Otherwise, you have the freedom to redistribute
  20. verbatim copies of this source code, adapt it to your specific
  21. needs, or improve the code and release your improvements to the
  22. public provided that the modified files carry prominent notices
  23. stating that you changed the files and the date of any change.
  24.  
  25. THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND.
  26. THE ENTIRE RISK OF THE QUALITY AND PERFORMANCE OF THIS SOFTWARE
  27. IS WITH YOU. SHOULD ANY ELEMENT OF THIS SOFTWARE PROVE DEFECTIVE,
  28. YOU WILL ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR, OR
  29. CORRECTION.
  30.  
  31. The CCIndex class is a persistent string VBD database used
  32. to store various name and address information in a 3" X 5"
  33. index card file format. All the string members can grow and
  34. shrink as needed.
  35. */
  36. // ----------------------------------------------------------- //   
  37. #ifndef __CCINDEX_HPP__
  38. #define __CCINDEX_HPP__
  39.  
  40. #include "persist.h"
  41.  
  42. const INT32 CCIndexVersion = 1998; // CCIndex class version number
  43. const INT32 SClassID = 53198;      // Unique class ID for this database
  44.  
  45. // String Database class
  46. class CCIndex : public Persistent
  47. {
  48. public:
  49.   CCIndex() {
  50.     card_name = company_name = department_name = phone_number = fax_number =
  51.       cell_number = beeper_number =  email_address = street_address =
  52.       internet_urls = comments_block = "\0";
  53.   }
  54.  
  55.   CCIndex(const POD *pod) : Persistent(pod) {
  56.     card_name = company_name = department_name = phone_number = fax_number =
  57.       cell_number = beeper_number =  email_address = street_address =
  58.       internet_urls = comments_block = "\0";
  59.   }
  60.  
  61.   CCIndex(POD *pod) : Persistent(pod) {
  62.     card_name = company_name = department_name = phone_number = fax_number =
  63.       cell_number = beeper_number =  email_address = street_address =
  64.       internet_urls = comments_block = "\0";
  65.   }
  66.  
  67.   CCIndex(const CCIndex &ob) { Copy(ob); }
  68.   void operator=(const CCIndex &ob) { Copy(ob); }
  69.   
  70. public: 
  71.   void SetCardName(const char *s) { card_name = s; }
  72.   void SetCardName(const UString &s) { card_name = s; }
  73.   void SetCompanyName(const char *s) { company_name = s; }
  74.   void SetCompanyName(const UString &s) { company_name = s; }
  75.   void SetDepartmentName(const char *s) { department_name = s; }
  76.   void SetDepartmentName(const UString &s) { department_name = s; }
  77.   void SetPhoneNumber(const char *s) { phone_number = s; }
  78.   void SetPhoneNumber(const UString &s) { phone_number = s; }
  79.   void SetFaxNumber(const char *s) { fax_number = s; }
  80.   void SetFaxNumber(const UString &s) { fax_number = s; }
  81.   void SetCellNumber(const char *s) { cell_number = s; }
  82.   void SetCellNumber(const UString &s) { cell_number = s; }
  83.   void SetBeeperNumber(const char *s) { beeper_number = s; }
  84.   void SetBeeperNumber(const UString &s) { beeper_number = s; }
  85.   void SetEmailAddress(const char *s) { email_address = s; }
  86.   void SetEmailAddress(const UString &s) { email_address = s; }
  87.   void SetStreetAddress(const char *s) { street_address = s; }
  88.   void SetStreetAddress(const UString &s) { street_address = s; }
  89.   void SetInternetURLS(const char *s) { internet_urls = s; }
  90.   void SetInternetURLS(const UString &s) { internet_urls = s; }
  91.   void SetCommentsBlock(const char *s) { comments_block = s; }
  92.   void SetCommentsBlock(const UString &s) { comments_block = s; }
  93.   const char *GetCardName() const { return card_name.c_str(); }
  94.   char *GetCardName() { return card_name.c_str(); }
  95.   const char *GetDepartmentName() const { return department_name.c_str(); }
  96.   char *GetDepartmentName() { return department_name.c_str(); }
  97.   const char *GetCompanyName() const { return company_name.c_str(); }
  98.   char *GetCompanyName() { return company_name.c_str(); }
  99.   const char *GetPhoneNumber() const { return phone_number.c_str(); }
  100.   char *GetPhoneNumber() { return phone_number.c_str(); }
  101.   const char *GetFaxNumber() const { return fax_number.c_str(); }
  102.   char *GetFaxNumber() { return fax_number.c_str(); }
  103.   const char *GetCellNumber() const { return cell_number.c_str(); }
  104.   char *GetCellNumber() { return cell_number.c_str(); }
  105.   const char *GetBeeperNumber() const { return beeper_number.c_str(); }
  106.   char *GetBeeperNumber() { return beeper_number.c_str(); }
  107.   const char *GetEmailAddress() const { return email_address.c_str(); }
  108.   char *GetEmailAddress() { return email_address.c_str(); }
  109.   const char *GetStreetAddress() const { return street_address.c_str(); }
  110.   char *GetStreetAddress() { return street_address.c_str(); }
  111.   const char *GetInternetURLS() const { return internet_urls.c_str(); }
  112.   char *GetInternetURLS() { return internet_urls.c_str(); }
  113.   const char *GetCommentBlock() const { return comments_block.c_str(); }
  114.   char *GetCommentsBlock() { return comments_block.c_str(); }
  115.   INT32 Version() { return CCIndexVersion; }
  116.  
  117. public:
  118.   void Copy(const CCIndex &ob);
  119.   int FullCompare(const CCIndex &ob);
  120.  
  121. private: // Base class interface
  122.   virtual FAU Write();
  123.   virtual void Read(FAU Address);
  124.   virtual FAU Find();
  125.   virtual FAU Delete();
  126.   virtual FAU Remove();
  127.  
  128. public: // Base class interface
  129.   virtual INT32 GetClassID() const { return SClassID; }
  130.   virtual const char *GetClassName() { return "Class CCIndex"; }
  131.   virtual unsigned ObjectLength();
  132.   virtual void SetObjectAddress(FAU addr) { objectaddress = addr; }
  133.   virtual FAU GetObjectAddress() { return objectaddress; }
  134.   virtual int CompareIndex();
  135.   virtual int RebuildIndexFile(const char *fname);
  136.  
  137. public: // Overloaded operators
  138.   friend int operator==(const CCIndex &a, const CCIndex &b);
  139.   friend int operator!=(const CCIndex &a, const CCIndex &b);
  140.   friend int operator>(const CCIndex &a, const CCIndex &b);
  141.   friend int operator>=(const CCIndex &a, const CCIndex &b);
  142.   friend int operator<(const CCIndex &a, const CCIndex &b);
  143.   friend int operator<=(const CCIndex &a, const CCIndex &b);
  144.   
  145. private:
  146.   UString card_name;
  147.   UString company_name;
  148.   UString department_name;
  149.   UString phone_number;
  150.   UString fax_number;
  151.   UString cell_number;
  152.   UString beeper_number;
  153.   UString email_address;
  154.   UString street_address;
  155.   UString internet_urls;
  156.   UString comments_block;
  157. };
  158.  
  159. #endif  // __CCINDEX_HPP__ 
  160. // ----------------------------------------------------------- // 
  161. // ------------------------------- //
  162. // --------- End of File --------- //
  163. // ------------------------------- //
  164.